home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / Convert_VB339301182001.psc / ODL Converter / Forms / frmMain.frm (.txt)
Encoding:
Visual Basic Form  |  2001-11-07  |  11.1 KB  |  319 lines

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "Mscomctl.ocx"
  3. Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
  4. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "Comdlg32.ocx"
  5. Begin VB.Form frmMain 
  6.    Caption         =   "ODL Converter"
  7.    ClientHeight    =   5925
  8.    ClientLeft      =   165
  9.    ClientTop       =   735
  10.    ClientWidth     =   6750
  11.    Icon            =   "frmMain.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    LockControls    =   -1  'True
  14.    ScaleHeight     =   395
  15.    ScaleMode       =   3  'Pixel
  16.    ScaleWidth      =   450
  17.    StartUpPosition =   3  'Windows Default
  18.    Begin MSComDlg.CommonDialog cdFile 
  19.       Left            =   3135
  20.       Top             =   2715
  21.       _ExtentX        =   847
  22.       _ExtentY        =   847
  23.       _Version        =   393216
  24.       CancelError     =   -1  'True
  25.       Filter          =   "Basic Files (*.bas)|*.bas|All Files|*.*"
  26.    End
  27.    Begin RichTextLib.RichTextBox rtbODL 
  28.       Height          =   4455
  29.       Left            =   240
  30.       TabIndex        =   3
  31.       Top             =   600
  32.       Visible         =   0   'False
  33.       Width           =   6255
  34.       _ExtentX        =   11033
  35.       _ExtentY        =   7858
  36.       _Version        =   393217
  37.       BorderStyle     =   0
  38.       Enabled         =   -1  'True
  39.       ReadOnly        =   -1  'True
  40.       ScrollBars      =   3
  41.       RightMargin     =   90000
  42.       TextRTF         =   $"frmMain.frx":000C
  43.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  44.          Name            =   "Tahoma"
  45.          Size            =   9.75
  46.          Charset         =   0
  47.          Weight          =   400
  48.          Underline       =   0   'False
  49.          Italic          =   0   'False
  50.          Strikethrough   =   0   'False
  51.       EndProperty
  52.    End
  53.    Begin VB.CommandButton cmdTest 
  54.       Caption         =   "Process"
  55.       Height          =   495
  56.       Left            =   2760
  57.       TabIndex        =   2
  58.       Top             =   5280
  59.       Width           =   1215
  60.    End
  61.    Begin RichTextLib.RichTextBox rtbCode 
  62.       Height          =   4455
  63.       Left            =   240
  64.       TabIndex        =   1
  65.       Top             =   600
  66.       Width           =   6255
  67.       _ExtentX        =   11033
  68.       _ExtentY        =   7858
  69.       _Version        =   393217
  70.       BorderStyle     =   0
  71.       Enabled         =   -1  'True
  72.       HideSelection   =   0   'False
  73.       ReadOnly        =   -1  'True
  74.       ScrollBars      =   3
  75.       RightMargin     =   9e6
  76.       AutoVerbMenu    =   -1  'True
  77.       TextRTF         =   $"frmMain.frx":0087
  78.    End
  79.    Begin MSComctlLib.TreeView tvMembers 
  80.       Height          =   4455
  81.       Left            =   240
  82.       TabIndex        =   4
  83.       Top             =   600
  84.       Visible         =   0   'False
  85.       Width           =   6255
  86.       _ExtentX        =   11033
  87.       _ExtentY        =   7858
  88.       _Version        =   393217
  89.       Indentation     =   0
  90.       LineStyle       =   1
  91.       Style           =   7
  92.       Appearance      =   1
  93.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  94.          Name            =   "Tahoma"
  95.          Size            =   9.75
  96.          Charset         =   0
  97.          Weight          =   400
  98.          Underline       =   0   'False
  99.          Italic          =   0   'False
  100.          Strikethrough   =   0   'False
  101.       EndProperty
  102.    End
  103.    Begin MSComctlLib.TabStrip tsCode 
  104.       Height          =   5055
  105.       Left            =   120
  106.       TabIndex        =   0
  107.       Top             =   120
  108.       Width           =   6495
  109.       _ExtentX        =   11456
  110.       _ExtentY        =   8916
  111.       HotTracking     =   -1  'True
  112.       _Version        =   393216
  113.       BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628} 
  114.          NumTabs         =   3
  115.          BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
  116.             Caption         =   "Code"
  117.             ImageVarType    =   2
  118.          EndProperty
  119.          BeginProperty Tab2 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
  120.             Caption         =   "Members"
  121.             ImageVarType    =   2
  122.          EndProperty
  123.          BeginProperty Tab3 {1EFB659A-857C-11D1-B16A-00C0F0283628} 
  124.             Caption         =   "ODL Result"
  125.             ImageVarType    =   2
  126.          EndProperty
  127.       EndProperty
  128.    End
  129.    Begin VB.Menu mnuFile 
  130.       Caption         =   "File"
  131.       Begin VB.Menu mnuFileOpenModule 
  132.          Caption         =   "Open Module..."
  133.       End
  134.       Begin VB.Menu mnuFileImportModule 
  135.          Caption         =   "Import Module..."
  136.       End
  137.       Begin VB.Menu mnuFileExportODL 
  138.          Caption         =   "Export ODL Result"
  139.       End
  140.       Begin VB.Menu mnuFileS1 
  141.          Caption         =   "-"
  142.       End
  143.       Begin VB.Menu mnuFileExit 
  144.          Caption         =   "E&xit"
  145.       End
  146.    End
  147. Attribute VB_Name = "frmMain"
  148. Attribute VB_GlobalNameSpace = False
  149. Attribute VB_Creatable = False
  150. Attribute VB_PredeclaredId = True
  151. Attribute VB_Exposed = False
  152. Option Explicit
  153. '//[entry("alias"), helpstring("alias")] type Name({[in, out] argtype argname});
  154. '//void* = any
  155. '//type* = struct
  156. Private m_corResult As CodeResult
  157. Private m_clsLangs As SCLanguages
  158. Private Sub cmdTest_Click()
  159.     m_corResult = SemanticParse(rtbCode.Text, m_clsLangs(1).Engine)
  160.     UpdateTreeView
  161.     UpdateODLView
  162. End Sub
  163. Private Sub Form_Load()
  164.     Set m_clsLangs = New SCLanguages
  165.     m_clsLangs.Add "Basic", New BasicLanguage
  166. End Sub
  167. Private Sub Form_Resize()
  168.     Dim m_objMove As Object
  169.     On Error Resume Next
  170.     Select Case tsCode.SelectedItem.Index
  171.         Case 1
  172.             Set m_objMove = rtbCode
  173.         Case 2
  174.             Set m_objMove = tvMembers
  175.         Case 3
  176.             Set m_objMove = rtbODL
  177.     End Select
  178.     cmdTest.Move (ScaleWidth - cmdTest.Width) / 2, ScaleHeight - 3 - cmdTest.Height
  179.     tsCode.Move 3, 3, ScaleWidth - 6, cmdTest.Top - 9
  180.     If m_objMove Is Nothing Then _
  181.         Exit Sub
  182.     m_objMove.Move tsCode.ClientLeft + 3, tsCode.ClientTop + 3, tsCode.ClientWidth - 6, tsCode.ClientHeight - 6
  183. End Sub
  184. Private Sub mnuFileExit_Click()
  185.     Unload Me
  186. End Sub
  187. Private Sub mnuFileExportODL_Click()
  188.     Dim m_strFile As String
  189.     Dim m_lngFile As Long
  190.     On Error GoTo Catch
  191.     cdFile.FileName = vbNullString
  192.     cdFile.Filter = "Text Files (*.txt)|*.txt|All Files|*.*"
  193.     cdFile.ShowSave
  194.     m_strFile = cdFile.FileName
  195.     m_lngFile = FreeFile
  196.     Open m_strFile For Output Lock Write As #m_lngFile
  197.         Print #m_lngFile, rtbODL.Text
  198.     Close #m_lngFile
  199.     Exit Sub
  200. Catch:
  201. End Sub
  202. Private Sub mnuFileImportModule_Click()
  203.     Const BufferSize = 2 ^ 11
  204.     Dim m_strFile As String
  205.     Dim m_strLine As String
  206.     Dim m_lngFile As Long
  207.     Dim m_lngBufferIndex As Long
  208.     Dim m_staBuffer() As String
  209.     On Error GoTo Catch
  210.     ReDim m_staBuffer(0)
  211.     cdFile.FileName = vbNullString
  212.     cdFile.Filter = "Basic Files (*.bas)|*.bas|All Files|*.*"
  213.     cdFile.ShowOpen
  214.     m_strFile = cdFile.FileName
  215.     m_lngFile = FreeFile
  216.     Open m_strFile For Input Lock Read As #m_lngFile
  217.         Do Until EOF(m_lngFile)
  218.             Line Input #m_lngFile, m_strLine
  219.             If Not LCase(m_strLine) Like "attribute vb_*=*""*""" Then
  220.                 m_staBuffer(m_lngBufferIndex) = m_staBuffer(m_lngBufferIndex) & m_strLine & vbCrLf
  221.                 If Len(m_staBuffer(m_lngBufferIndex)) > BufferSize Then
  222.                     m_lngBufferIndex = m_lngBufferIndex + 1
  223.                     ReDim Preserve m_staBuffer(m_lngBufferIndex)
  224.                 End If
  225.             End If
  226.         Loop
  227.     Close #m_lngFile
  228.     GoTo Finally
  229. Catch:
  230. Finally:
  231.     rtbCode.TextRTF = MakeRTF(m_clsLangs(1).Engine, rtbCode.Text & vbCrLf & Join(m_staBuffer, vbNullString))
  232. End Sub
  233. Private Sub mnuFileOpenModule_Click()
  234.     Const BufferSize = 2 ^ 11
  235.     Dim m_strFile As String
  236.     Dim m_strLine As String
  237.     Dim m_lngFile As Long
  238.     Dim m_lngBufferIndex As Long
  239.     Dim m_staBuffer() As String
  240.     On Error GoTo Catch
  241.     ReDim m_staBuffer(0)
  242.     cdFile.FileName = vbNullString
  243.     cdFile.Filter = "Basic Files (*.bas)|*.bas|All Files|*.*"
  244.     cdFile.ShowOpen
  245.     m_strFile = cdFile.FileName
  246.     m_lngFile = FreeFile
  247.     Open m_strFile For Input Lock Read As #m_lngFile
  248.         Do Until EOF(m_lngFile)
  249.             Line Input #m_lngFile, m_strLine
  250.             If Not LCase(m_strLine) Like "attribute vb_*=*""*""" Then
  251.                 m_staBuffer(m_lngBufferIndex) = m_staBuffer(m_lngBufferIndex) & m_strLine & vbCrLf
  252.                 If Len(m_staBuffer(m_lngBufferIndex)) > BufferSize Then
  253.                     m_lngBufferIndex = m_lngBufferIndex + 1
  254.                     ReDim Preserve m_staBuffer(m_lngBufferIndex)
  255.                 End If
  256.             End If
  257.         Loop
  258.     Close #m_lngFile
  259.     GoTo Finally
  260. Catch:
  261. Finally:
  262.     rtbCode.TextRTF = MakeRTF(m_clsLangs(1).Engine, Join(m_staBuffer, vbNullString))
  263. End Sub
  264. Private Sub tsCode_Click()
  265.     Dim m_objVis As Object
  266.     Select Case tsCode.SelectedItem.Index
  267.         Case 1
  268.             Set m_objVis = rtbCode
  269.         Case 2
  270.             Set m_objVis = tvMembers
  271.         Case 3
  272.             Set m_objVis = rtbODL
  273.     End Select
  274.     rtbCode.Visible = False
  275.     rtbODL.Visible = False
  276.     tvMembers.Visible = False
  277.     If m_objVis Is Nothing Then _
  278.         Exit Sub
  279.     Form_Resize
  280.     m_objVis.Visible = True
  281.     m_objVis.SetFocus
  282. End Sub
  283. Private Sub UpdateTreeView()
  284.     Dim m_tvnNodeMain As Node
  285.     Dim m_tvnSub As Node
  286.     Dim m_lngLoop As Long
  287.     Dim m_lngSubItem As Long
  288.     Dim m_stsStatement As StructStatement
  289.     Dim m_desStatement As DeclareStatement
  290.     Dim m_rimMember As ResultItem
  291.     Dim m_ensStatement As EnumStatement
  292.     Dim m_esiItem As EnumStatementItem
  293.     tvMembers.Nodes.Clear
  294.     For m_lngLoop = 1 To m_corResult.Enums.Count
  295.         m_ensStatement = m_corResult.Enums.Enums(m_lngLoop)
  296.         Set m_tvnNodeMain = tvMembers.Nodes.Add(, , "tag" & m_ensStatement.Name, m_ensStatement.Name)
  297.         m_tvnNodeMain.Tag = "ens_" & m_lngLoop
  298.         For m_lngSubItem = 1 To m_ensStatement.Members.Count
  299.             m_esiItem = m_ensStatement.Members.Item(m_lngSubItem)
  300.             Set m_tvnSub = tvMembers.Nodes.Add(m_tvnNodeMain, tvwChild, , m_esiItem.Name & " = " & m_esiItem.Value & " " & "(&H" & Hex(m_esiItem.Value) & ")")
  301.             m_tvnSub.Tag = "esi_" & m_lngSubItem
  302.         Next
  303.     Next
  304.     For m_lngLoop = 1 To m_corResult.Structs.Count
  305.         m_stsStatement = m_corResult.Structs.Structs(m_lngLoop)
  306.         Set m_tvnNodeMain = tvMembers.Nodes.Add(, , , m_stsStatement.Name)
  307.         m_tvnNodeMain.Tag = "tag_" & m_lngLoop
  308.         With m_stsStatement
  309.             For m_lngSubItem = 1 To .Members.Count
  310.                 m_rimMember = .Members.Items(m_lngSubItem)
  311.                 Set m_tvnSub = tvMembers.Nodes.Add(m_tvnNodeMain, tvwChild, , m_rimMember.Name & " As " & m_rimMember.Type)
  312.                 m_tvnSub.Tag = "tsb_" & m_lngSubItem
  313.             Next
  314.         End With
  315.     Next
  316.     For m_lngLoop = 1 To m_corResult.Declares.Count
  317.         m_desStatement =ep)
  318. 1M-11D1-B16A-0Item.Value) & ")")
  319.